package com.example.springboot.scheduled;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

/**
 *  Scheduled的参数
 * <p> fixedRate=2000 ：上一次开始执行时间点后2秒再次执行；
 * <p> fixedDelay=2000：上一次执行完毕时间点后2秒再次执行；
 * <p> initialDelay=1000, fixedDelay=2000：第一次延迟1秒执行，然后在上一次执行完毕时间点后2秒再次执行；
 * <p> cron="* * * * * ?  ：按cron规则执行。
 */
@Component
public class ScheduledTask1 {

    private static final Logger logger = LoggerFactory.getLogger(ScheduledTask1.class);

    @Scheduled(fixedDelay = 10000)
    public void test1(){
        String name = Thread.currentThread().getName();
        System.out.println(name + " 任务1 == " + LocalDateTime.now());
    }

    //可以从配置文件中获取值
    @Scheduled(fixedRateString = "${task.test2.time}")
    public void test2(){
        String name = Thread.currentThread().getName();
        System.out.println(name + " 任务2 == " + LocalDateTime.now());
    }

}
